package com.ccp.dev.workflow.dao;

import com.ccp.dev.core.basic.base.IBaseMapper;
import com.ccp.dev.workflow.model.BpmNodeUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * ClassDescribe:节点下的人员的配置 Dao类
 * @author :jiayueqiao
 * Date: 2019-05-15
 * Since:1
 */
public interface BpmNodeUserDao extends IBaseMapper<BpmNodeUser,String> {

    /**
     * 根据条件删除
     * @param conditionId 条件id
     * @return sql影响排序
     */
    int delByConditionId(String conditionId);

    /**
     * 根据条件查询人员设置信息
     * @param conditionId 条件id
     * @return 人员信息列表
     */
    List<BpmNodeUser> getByConditionId(String conditionId);

    /**
     * 根据条件id和类型查询人员设置信息
     * @param conditionId 条件id
     * @param assignType 分配类型
     * @return 人员信息列表
     */
    List<BpmNodeUser> queryByConditionIdAndType(@Param("conditionId") String conditionId,@Param("assignType") String assignType);

    /**
     * 根据流程定义id 获取人员设置信息
     * @param procDefId 流程定义id
     * @return 人员信息列表
     */
    List<BpmNodeUser> getByProcDefId(String procDefId);

    /**
     * 根据流程定义id和节点id获取节点人员信息
     * @param params 参数
     * @return 节点人员信息
     */
    List<BpmNodeUser> getByProcDefIdAndNodeId(Map<String, String> params);

    List<BpmNodeUser> queryByProcDefIdWithParentProcDefId(@Param("procDefId") String procDefId, @Param("parentProcDefId") String parentProcDefId);
}
